// Rebuilder.h: interface for the Rebuilder class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_REBUILDER_H__B8DDE4C6_FEFB_477F_8B55_E592F29DF365__INCLUDED_)
#define AFX_REBUILDER_H__B8DDE4C6_FEFB_477F_8B55_E592F29DF365__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "..\common\types.h"
#include "..\common\escenario.h"
#include "..\common\figuras\tipoFigura.h"
#include "..\common\figuras\rectangulo.h"
#include "..\common\figuras\tejo.h"
#include "..\common\figuras\segmento.h"
#include "..\common\figuras\triangulo.h"
#include "..\common\figuras\rectangulo.h"
#include "..\common\excepciones\errorInesperadoException.h"
#include "..\common\logger.h"



class Rebuilder  
{
public:
	static void convertFiguras(char* stream, listaFiguras* lista);
	
	static int getEntero(char* stream, long& pointer);

	static int getEntero(char* stream, int& pointer);

	//borrar esto!!! es para pruebas solamente
	static char* getCharAsteriscoMocked();

private:

	static int posicion;
	static figura* reconstruirCirculo(char* stream);

	static int getEntero(char* stream);
	static textura* getTextura(char* stream, int sizeTextura);

	Rebuilder();
	virtual ~Rebuilder();

	static figura* reconstruirRectangulo(char* stream);
	static figura* reconstruirSegmento(char* stream);
	static figura* reconstruirTriangulo(char* stream);

};

#endif 
